//
// Created by chen on 2023/5/14.
//
#pragma once  // 防止头文件重复编译
#include "iostream"
#include "fstream"
#include "worker.h"
#include "boss.h"
#include "manager.h"
#include "staff.h"
using namespace std;

#define FILENAME "employee.data"

#ifndef INC_0051EMPLOYEEMANAGEMENT02_WORKERMANAGER_H
#define INC_0051EMPLOYEEMANAGEMENT02_WORKERMANAGER_H

#endif //INC_0051EMPLOYEEMANAGEMENT02_WORKERMANAGER_H

/*
 * 管理类
 *      1、与用户的沟通菜单页面
 *      2、对职工增删改查操作
 *      3、与文件的读写交互
 */
class WorkerManager{
public:
    int empNum;   // 记录员工个数

    Worker ** empArray;  // 员工数组的指针

    bool fileIsEmpty;  // 标志文件是否为空

    WorkerManager();

    void showMenu();  // 展示菜单

    void exitSystem();  // 退出系统

    void addEmp();  // 添加员工

    void saveToFile();  // 保存到文件

    int getEmpNum();  // 获取文件中储存的员工数量

    void initEmp();  // 初始化，读入文件中的员工信息

    void showEmp();  // 展示职工信息

    int isExist(int id);  // 判断职工是否存在

    void deleteEmp(); // 删除职工

    void modifyEmp(); // 修改职工信息

    void findEmp();  // 查找职工

    void sortEmp();  // 按编号排序职工

    void cleanFile();  // 清空文件

    ~WorkerManager();
};
